Generating a VISA Card Verification Value

Command: CV (Card Verification). Can be used in online, offline or secure state.
The HSM must be in the Authorised state.

Function:     To generate a VISA card verification value (CVV).

Inputs:        Encrypted CVK A under a variant of LMK pair 14-15: 16 hexadecimal characters.
Encrypted CVK B under a variant of LMK pair 14-15: 16 hexadecimal characters.
The CVK can be presented as a double length key using the new scheme.
Primary account number (PAN) for the card: up to 19 decimal digits.
Card Expiry date: 4 decimal digits.
Service code: 3 decimal digits.

Outputs:     Card Verification Value: 3 decimal digits.

Errors:        Command only allowed from authorised – the HSM must be in authorised state.

Data invalid; please re-enter: - possibly incorrect key length.  Could also be incorrect PAN, card expiry date, or service code length or non-decimal PAN, card expiry date or service code.

Key parity error; please re-enter: - the parity of the key entered is not odd.

Internal failure 12: function aborted - the contents of LMK storage have been corrupted or erased. Do not continue. Inform the Security Department.

Example 1:

Online-AUTH> CV <Return>

Enter key A: XXXXXXXXXXXXXXXX <Return>

Enter key B: YYYYYYYYYYYYYYYY <Return>

Enter PAN: 1234567812345678 <Return>

Enter expiry date: 0604 <Return>

Enter service code: 123 <Return>

CVV: 123

Example 2:

Online-AUTH> CV <Return>

Enter key A: U XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX <Return>

Enter PAN: 1234567812345678 <Return>

Enter expiry date: 0604 <Return>

Enter service code: 123 <Return>

CVV: 123